﻿using MCPlatform.Builder.WorkStation;
using MCPlatform.ViewModels.Shell;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MCPlatform.MachineFSM
{
    public abstract class StateBase :IState
    {
        protected FSM fsm;

        protected HomeViewModel homeViewModel;

        protected MainControlStation mainControlStation;

        public StateBase(FSM fsm)
        {
            this.fsm = fsm;
            this.homeViewModel = fsm.homeViewModel;
            this.mainControlStation = fsm.mainControlStation;
        }
        public abstract void OnEnter();

        public abstract void OnExit();


        public abstract void OnUpdate();


        public abstract bool OnCheck();

    }
}
